package com.m1book.repositories.user;

import java.util.List;

import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;

import com.m1book.domain.book.Book;
import com.m1book.domain.user.Miser;

/**
 * 定义了一些Spring Data内置{@link MongoRepository}无法支持的特定查询方法。
 * 
 * @author Frankie
 *
 */
public interface MiserRepositoryCustom {
	
	/**
	 * 根据省、市、区县查找咪书会员。
	 * 
	 * @param province 省
	 * @param city 市
	 * @return 符合行政区划条件的秘书会员列表
	 */
	public List<Miser> findByAddress(String province, String city);
	
	/**
	 * 查找当前持有指定Book的咪书会员。
	 * @param book 指定Book
	 * @param city 限定城市
	 * @param pageable 分页
	 * @return 咪书会员列表
	 */
	public List<Miser> findBookHolders(Book book, String city, Pageable pageable);
	
	/**
	 * 查找登记指定Book的咪书会员。
	 * @param book 指定Book
	 * @param city 限定城市
	 * @param pageable 分页
	 * @return 咪书会员列表
	 */
	public List<Miser> findBookDonaters(Book book, String city, Pageable pageable);
}
